<template>
  <body id="poster" :style="backgroundDiv">
    <el-header class="header" height="50px" style="-webkit-app-region: drag">
      <header-view height="50px" />
    </el-header>
    <el-form class="login-container" label-position="left" label-width="0px">
      <h3 class="login_title">系统登录</h3>
      <el-form-item>
        <el-input type="text" v-model="loginForm.username" auto-complete="off" placeholder="账号"></el-input>
      </el-form-item>
      <el-form-item>
        <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码"></el-input>
      </el-form-item>
      <el-form-item style="width: 100%">
        <el-button type="primary" style="width: 100%;background: #505458;border: none" @click="login">登录</el-button>
      </el-form-item>
    </el-form>
  </body>
</template>

<script>
  import HeaderView from '../../components/Header'
  export default {
    components: {
      HeaderView
    },
    name: 'login',
    data() {
      return {
        loginForm: {
          username: '',
          password: ''
        },
        responseResult: [],
        backgroundDiv: {
          backgroundImage: 'url(' + require('../../assets/login/image/bj.jpg') + ')',
          backgroundRepeat: 'no-repeat',
          backgroundSize: '100% 100%'
        }
      }
    },
    methods: {
      login(){
        let config = {
          headers: {
            'Content-Type': 'application/x-www-form-urlencoded'
          }
        }
        let data = this.param(this.loginForm)
        this.$http.post('/api/login', data, config)
      },
      param(data) {
        let url = ""
        for (let k in data) {
          let value = data[k] != undefined ? data[k] : ""
          url += `&${k}=${encodeURIComponent(value)}`
        }
        return url ? url.substring(1) : ""
      },
      /**
       * 获取背景图片
       * @returns {Promise<void>}
       */
      async getBackgroundPicture() {
        let res = await this.$http.get('/api/systemConfig/getLoginBackgroundPicture')
        if (res.code == 0 && res.data != '' && res.data != undefined && res.data != null) {
          this.backgroundDiv.backgroundImage = 'url(' + res.data + ')'
        }
      }
    },
    created() {
      this.getBackgroundPicture()
    },
    mounted(){
      this.$bus.$on('page-refresh', name => {
        if (name === 'login') {
          this.getBackgroundPicture()
        }
      })
    }
  }
</script>

<style>
  #poster {
    /*background:url("../../assets/login/image/bj.jpg") no-repeat;*/
    background-position: center;
    height: 100%;
    width: 100%;
    background-size: cover;
    position: fixed;
  }
  body{
    margin: 0px;
    padding: 0;
  }

  .login-container {
    border-radius: 15px;
    background-clip: padding-box;
    margin: 180px auto;
    width: 350px;
    padding: 35px 35px 15px 35px;
    background: #fff;
    border: 1px solid #eaeaea;
    box-shadow: 0 0 25px #cac6c6;
  }

  .login_title {
    margin: 0px auto 40px auto;
    text-align: center;
    color: #505458;
  }

  .header {
    background: #fafafa;
  }
</style>
